package com.ruoyi.psi.sale.order.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.sql.Timestamp;
import java.util.List;

/**
 * 销售订单实体类
 * 对应数据库字段 psi_sale_order
 * @author lsy 2021.8.10
 * 修改：
 */
@Data
public class SaleOrderDomain {
    /**
     * 销售订单编号
     */
    @NotNull(message = "销售订单编号不能为空")
    @ApiModelProperty(value = "销售订单编号", required = true)
    private String saleOrderId;

    /**
     * 订单类型
     * 0-销售订单 1-预测订单
     */
    @ApiModelProperty(value = "订单类型")
    private String saleOrderType;

    /**
     * 销售员编号
     */
    @NotNull(message = "销售员编号不能为空")
    @ApiModelProperty(value = "销售员编号", required = true)
    private String staffSaleId;

    /**
     * 订单时间
     */
    @ApiModelProperty("订单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Timestamp createTime;

    /**
     * 客户编号
     */
    @NotNull(message = "客户编号不能为空")
    @ApiModelProperty(value = "客户编号", required = true)
    private String customerInfoId;
    /**
     * 要求交货时间
     */
    @ApiModelProperty(value = "要求交货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Timestamp requiredDeliveryTime;;



    /**
     * 实际交货时间
     */
    @ApiModelProperty(value = "实际交货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Timestamp actualDeliveryTime;

    /**
     * 销售情况
     * 0：未审核、1：已审核/待出库、2：已出库。
     */
    @ApiModelProperty(value = "销售情况")
    private String saleOrderStatus;

    /**
     * 收款情况
     * 0：等待收款、1：完全收款。
     */
    @ApiModelProperty(value = "收款情况")
    private String collectionStatus;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;

    /**
     * 销售订单详细表
     */
    @ApiModelProperty("销售订单详细表")
    private List<SaleOrderListDomain> saleOrderLists;
    /**
     * 装箱数
     */
    @ApiModelProperty("装箱数")
    private double packingQtyy;

    /**
     * 箱数
     */
    @ApiModelProperty("箱数")
    private double boxQtyy;
    /**
     * 销售数量
     */
    @ApiModelProperty("销售数量")
    private double saleOrderNumber;
}
